package com.sparrow.common.aoi.listener;

import com.sparrow.common.aoi.domain.AOIEntity;
import com.sparrow.common.aoi.domain.MapData;

public interface AOIListener<T> {

    /**
     * 视野移除目标
     * @param map
     * @param entity 实体
     * @param target 移除目标
     */
    void onEntityLeaveView(T map, AOIEntity entity, AOIEntity target);

    /**
     * 视野出现目标
     * @param map
     * @param entity
     * @param target 进入视野的目标
     */
    void onEntityEnterView(T map, AOIEntity entity, AOIEntity target);

    /**
     * 实体位置变化
     *
     * @param map
     * @param entity
     * @param target
     */
    void onEntityPositionChange(T map, AOIEntity entity, AOIEntity target);
}
